A cloud-based data processing platform may be used to provide business users with access to business related data processing applications and data. Typically, such platforms are operated by a third party and provide data storage and data processing services to multiple users using what is termed a multi-tenant architecture. The provided services may be based on business related applications, including but not limited to Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), eCommerce, Financial, or Human Resources related applications. The data storage and business related applications may be provided to users in the form of a Software-as-a-Service (SaaS) business model. Such a data processing platform is typically comprised of multiple servers that are capable of running one or more of the business related data processing applications. The platform may thus provide a system or suite of functionality that is used by multiple tenants to provide benefits to their respective users (which may be employees of a tenant, customers of a tenant, etc.).
Enterprise Resource Planning (ERP) applications typically integrate the capabilities of several historically separate business computing systems into a common system, with a view toward streamlining business processes and increasing efficiencies on a business-wide level. The capabilities or modules of an ERP system may include (but are not required to include, nor limited to only including): accounting, order processing, time and billing, inventory management, employee management/payroll, human resources management, and employee calendaring and collaboration, as well as reporting and analysis capabilities relating to these functions.
Customer Relationship Management (CRM) applications typically include (but are not required to include, nor limited to only including): sales force automation (SFA), marketing automation, contact list, call center support, and web-based customer support, as well as reporting and analysis capabilities relating to these functions. With differing levels of overlap with ERP/CRM initiatives and with each other, efforts have also been directed toward development of increasingly integrated partner and vendor management systems, web store/eCommerce systems, product lifecycle management (PLM) systems, and supply chain management (SCM) systems.
In an effort to permit tenants to access the services and functionality that they desire (which may include providing certain services to their end customers, such as an eCommerce platform), a multi-tenant service platform may permit a tenant to configure certain aspects of the available service(s) to better suit their business needs. In this way the service platform may be customizable, and thereby enable a tenant to configure the platform to provide distinctive services to their respective users or to groups of those users. For example, a business enterprise that uses the service platform may want to provide additional functions or capabilities to their employees and/or customers, or to cause their business data to be processed in a specific way in accordance with a defined workflow that is tailored to their business needs, etc.
Tenant customizations may include custom functionality (such as the capability to perform tenant or user-specific functions, data processing, or operations) built on top of lower level operating system functions. Some multi-tenant service platforms may offer the ability to customize functions or operations at a number of different levels of the service platform, from aesthetic modifications to a graphical user interface to providing integration of components and processes, and/or entire applications developed by independent third party vendors. This can be very beneficial, since by permitting use of components, processes, and/or applications developed by others, a multi-tenant service can significantly enhance the functionality available to tenants and increase tenant satisfaction with the platform. In some cases, one or more of the customizations may be packaged into a logical functional group to create an application “extension” that includes a set of customizations that may be beneficial to utilize together or are desired by a particular tenant/user.
In addition to service platform or tenant/user developed customizations, a 3rd party software developer may also create an extension to a particular application or service that is available to users through a multi-tenant data processing platform. In one example, the extension may add new functionality or capabilities to the underlying application. In some cases one or more tenants/users of the platform may wish to add the extension to their use of the underlying application in order to be able to utilize the enhancements to the application that are made possible by the extension. Further, the developer may wish to upgrade or provide a patch to the extension as they recognize a need for fixes or additional functionality that would be beneficial to incorporate into the extension. However, in some cases the developer may prefer to make the upgrade available to only a select set of users (at least initially) in order to obtain feedback for improving the newer version of the extension, to test the stability of the extension, or to assist them to segment the market for their extension(s). Because the specific extension release or upgrade path for a tenant may depend on the tenant/account involved and its status, and to prevent harmful interactions with a tenant account, control and administration of the path is an important aspect of how a multi-tenant platform interacts with tenant accounts to make extensions available to them.
Conventional approaches to managing the release or upgrade of extensions to applications in a multi-tenant platform environment suffer from disadvantages related to lack of sufficient control over the processes and administration of the upgrades. Embodiments of the invention are directed toward solving these and other problems individually and collectively.